﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 中介者模式
{
    /// <summary>
    /// 联合国机构类（中介）
    /// </summary>
    public abstract class UnitedNations //得知道 是哪个国家
    {
        //发停战 声明
        public abstract void Declare(string message, Country country);
    }


    /// <summary>
    /// 安理会（具体的中介）
    /// </summary>
    public class UnitedNationsCouncil : UnitedNations
    {
        //需要了解所有具体的 国家,所以拥有这些国家对象的属性
        private USA u;
        public USA U
        {
            get { return u; }
            set { u = value; }
        }
        private Iraq i;
        public Iraq I
        {
            get { return i; }
            set { i = value; }
        }

        public override void Declare(string message, Country country)
        {
            if (country == u)   //实现两个对象间的通信
            {
                i.GetMessage(message);
            }
            else
                u.GetMessage(message);
        }
    }
}
